Τεχνολογία λογισμικού II

Κωδικός μαθήματος
τεχ-λογ-2
Μονάδες ECTS
5
Εξάμηνο
Εξάμηνο Η
Κατηγορία μαθήματος

Μαθήματα Κατεύθυνσης

Μαθήματα Κατεύθυνσης

Κατεύθυνση
Επιλογής Κατεύθυνσης Πληροφορικής
Περιγραφή μαθήματος
ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

Περιεχόμενα:

1. Επισκόπηση των αντικειμενοστρεφών χαρακτηριστικών των σύγχρονων γλωσσών προγραμματισμού
(α) κλάσεις (classes) / αφηρημένες κλάσεις (abstract classes) / διεπαφές (interfaces)
(β) Μέθοδοι επέκτασης (Extension Methods)
(γ) Ανώνυμες μέθοδοι (Anonymous Methods) / Εκφράσεις λάμδα (Lambda Expressions)
(δ) Στοιχεία για προγραμματισμό σε περιβάλλον καθοδηγούμενο από τα συμβάντα: Delegates / functional interfaces / Events (ε) Παραμετρικοί τύποι δεδομένων (Generics)

2. Η ευέλικτη μεθοδολογία και το επαναληπτικό μοντέλο ανάπτυξης
(α) Φάση απαιτήσεων
(β) Φάση σχεδιασμού
(γ) Φάση υλοποίησης

3. Αρχές GRASP και SOLID (α) Αρχές GRASP: Ειδικός πληροφορίας (Information Expert), Δημιουργός (Creator), Χαμηλή σύζευξη
(Low Coupling), Προστατευμένες παραλλαγές (Protected Variations), Ενδιάμεσες κλάσεις (Indirection), Πολυμορφισμός (Polymorphism), Υψηλή συνεκτικότητα (High Cohesion), Κατάλληλη κατασκευή αμιγώς τεχνητών κλάσεων (Pure Fabrication), Ελεγκτές (Controller) (β) Αρχές SOLID: S - Single-responsibility Principle (αρχή μοναδικής υπευθυνότητας), O - Open-closed
Principle (αρχή ανοικτότητας-κλειστότητας), L - Liskov Substitution Principle (αρχή αντικατάστασης
της Liskov), I - Interface Segregation Principle (αρχή διαχωρισμού διεπαφών), D - Dependency Inversion Principle (αρχή αντιστροφής εξαρτήσεων)

4. Σχεδιαστικά μοτίβα - Gang Of Four Patterns
(α) Μοτίβα δημιουργίας (Abstract Factory, Builder, Factory Method, Prototype, Singleton)
(β) Δομικά μοτίβα (Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy)
(γ) Συμπεριφορικά μοτίβα (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State , Template Method, Visitor) 

ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ

Αξιολόγηση: Υποχρεωτικές τελικές εργασίες με βάρος 60%-70%. Εργαστηριακή Εργασία με βάρος 30%-40%.

Μέθοδοι αξιολόγησης: Γραπτή εργασία, Εργαστηριακή εργασία.

URL ΜΑΘΗΜΑΤΟΣ ΣΤΟ ECLASS

https://eclass.uop.gr/courses/2833/

ΣΥΝΙΣΤΩΜΕΝΗ ΒΙΒΛΙΟΓΡΑΦΙΑ

Βιβλιογραφία: 

  1. T. Lethbridge, R. Laganiere, Μηχανική Αντικειμενοστραφούς Λογισμικού, 1η έκδοση, Τζιόλα, 2016. ISBN: 9789604185986. Κωδικός στον Εύδοξο: 59384106
  2. R. Pressman, B. Maxim, Τεχνολογία Λογισμικού, 8η έκδοση, Τζιόλα, 2018. ISBN: 9789604187201. Κωδικός στον Εύδοξο: 68374068
  3. B. Forouzan, C++ Programming: An Object-Oriented Approach, 1η έκδοση, McGraw Hill, 2020. ISBN: 9781260547726. Κωδικός στον Εύδοξο: 112706402
  4. B. Forouzan, Προγραμματισμός με C++, Αντικειμενοστρεφής προσέγγιση, 1η έκδοση, Broken Hill Publishers, 2022. ISBN: 9789925350100. Κωδικός στον Εύδοξο: 112690605
  5. I. Sommerville, Βασικές αρχές Τεχνολογίας Λογισμικού, 8η έκδοση, Κλειδάριθμος, 2009. Κωδικός στον Εύδοξο: 13625
  6. Α. Χατζηγεωργίου, Αντικειμενοστρεφής Σχεδίαση: UML, Αρχές, Πρότυπα και Ευρετικοί Κανόνες, 1η έκδοση, Κλειδάριθμος, 2005. Κωδικός στον Εύδοξο: 13600